#include "testing.h"

/*********************************
 * RUTINAS PARA GENERAR EXCEPCIONES 
 *********************************/

//GENERA division por cero
void generar_db(){
    __asm __volatile("xor %edx, %edx;  div %edx;");
}

//GENERA general proctection
void generar_gp(){
    __asm __volatile("mov %eax,%es:0xFFFFFFFF");
}

//anida llamados a funcion, sirve para testear BACKTRACE 
void make_calls(fn_t* f, uint calls){
    if(calls==0) f();
    else make_calls(f, calls-1);
}

/*************************
 * RUTINAS TESTEAR MMU
 *************************/
// recorre un rango de memoria para generar page fault
// longitud tiene que estar expresada en bytes
void recorrer_dir(uint inicio, uint longitud){
    uint *p = (uint *) inicio;
    
    longitud=longitud/4;
    
    uint i=0;
    for(i = 0; i < longitud; i++){
        p[i] = p[i];
    }
}
